﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using EM_Utils;
using EM.Entities;
using EM.Business;
using EM.Data;

using System.IO;
using Microsoft.Reporting.WinForms;



namespace EstabilidadMedicamentos
{
    public partial class Form1 : Form
    {
        UTExcel objExcel = new UTExcel();
        string appPath = Path.GetDirectoryName(Application.ExecutablePath);
        string chartPath = "";
        public Form1()
        {
            InitializeComponent();
        }
        
        private void boton1ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            EM_Cabecera objCabecera = new EM_Cabecera();
           

            objCabecera.nomProducto = txt_nomProducto.Text;
            objCabecera.presentacion = txt_presentacion.Text;
            objCabecera.tipoEmpaque = txt_tipoEmpaque.Text;
            objCabecera.nroLotes = Convert.ToInt32(txt_nroLotes.Text);
            objCabecera.motivo = txt_motivo.Text;
            objCabecera.obervacion = txt_obervacion.Text;
            objCabecera.activoVal = txt_activoVal.Text;
            objCabecera.paramEval = txt_paramEval.Text;
            objCabecera.tipoAnalisis = txt_tipoAnalisis.Text;
            objCabecera.LimEspecif = Convert.ToDouble(txt_LimEspecif.Text);
            objCabecera.strLote_1 = txt_strLote_1.Text;
            objCabecera.strLote_2 = txt_strLote_2.Text;
            objCabecera.strLote_3 = txt_strLote_3.Text;
            objCabecera.temperatura = Convert.ToDouble(txt_temperatura.Text);
            objCabecera.humedadRel = Convert.ToInt32(txt_humedadRel.Text);

            /* Recorrido del Data grid View */

            List<EM_Detalle> lstEM_Detalle = new List<EM_Detalle>();
            for (int i = 0; i < dgv_datos.RowCount-1; i++)
            {
                EM_Detalle objDetalle = new EM_Detalle();
                objDetalle.tiempo = Convert.ToInt32(dgv_datos.Rows[i].Cells[0].Value.ToString());
                objDetalle.muestra = dgv_datos.Rows[i].Cells[1].Value.ToString();
                objDetalle.fechaLt1 = dgv_datos.Rows[i].Cells[2].Value.ToString();
                objDetalle.valorLt1 = Convert.ToDouble(dgv_datos.Rows[i].Cells[3].Value.ToString());
                objDetalle.fechaLt2 = dgv_datos.Rows[i].Cells[4].Value.ToString();
                objDetalle.valorLt2 = Convert.ToDouble(dgv_datos.Rows[i].Cells[5].Value.ToString());
                objDetalle.fechaLt3 = dgv_datos.Rows[i].Cells[6].Value.ToString();
                objDetalle.valorLt3 = Convert.ToDouble(dgv_datos.Rows[i].Cells[7].Value.ToString());

                lstEM_Detalle.Add(objDetalle);
            }
            chartPath = appPath + @"\Chart2.bmp";

            objCabecera.Detalle = lstEM_Detalle;
            objExcel.GeneraReporte(objCabecera, chartPath);

            MedicamentoBusiness BMMedicamentos= new MedicamentoBusiness();
            EM.Data.DataSet1 dts;
            dts = BMMedicamentos.procesarDatos(objCabecera);

            CabeceraBindingSource.DataSource = dts.Cabecera;
            DetalleBindingSource.DataSource = dts.Detalle;
            reportViewer1.LocalReport.EnableExternalImages = true;

            ReportParameter paramLogo = new ReportParameter();
            paramLogo.Name = "ChartPath";
            paramLogo.Values.Add(@"file:///"+chartPath);
           
            reportViewer1.LocalReport.SetParameters(paramLogo);
            reportViewer1.RefreshReport();


        }

        private void Form1_Load(object sender, EventArgs e)
        {
            
            this.reportViewer1.RefreshReport();
        }

    }
}
